--
-- Author: ping.wang
-- Date: 2018-07-02 17:46:11
--
local fileName = string.getModeName(...)
local ClassRef = class(fileName)
local string_split = string.split

function ClassRef:ctor(data)
	assert(data)
	self._db = data
	self._proIds = self:_getPreId()
	self._proSeats = self:_getPreSeat()
	self._seat = tonumber(self._db.seat)
	self._needGuildLv = tonumber(self._db.guildLv)
	self._needDonateLv = tonumber(self._db.guildDonate) --这个值可以被服务器修改
	self._isActive = false --是否已经激活该天赋
	self._canGet = false --是否可以激活该天赋

	if table.nums(self._proIds) == 0 then
		self._canGet = true
	end
end

function ClassRef:_getPreId()
	local proIds = string_split(self._db.proId,";")
	local proIdsTable = {}
	for _,v in ipairs(proIds) do
		if tonumber(v) ~= 0 then
			table.insert(proIdsTable,tonumber(v))
		end
	end
	return proIdsTable
end

function ClassRef:_getPreSeat()
	local proSeats = string_split(self._db.proSeat,";")
	local proSeatsTable = {}
	for _,v in ipairs(proSeats) do
		if tonumber(v) ~= 0 then
			table.insert(proSeatsTable,tonumber(v))
		end
	end
	return proSeatsTable
end

--获取天赋在显示中的哪个位置
function ClassRef:getSeat()
	return self._seat
end

--获取前置节点的位置
function ClassRef:getProSeats()
	return self._proSeats
end

--获取解锁的资金需求
function ClassRef:getCost()
	return tonumber(self._db.guildGold)
end

--天赋ID
function ClassRef:getId()
	return tonumber(self._db.ID)
end

--获取天赋名
function ClassRef:getTalentName()
	return L(self._db.name)
end

--获取天赋描述
function ClassRef:getTalentDes()
	return L(self._db.des)
end

--获取需要的公会等级
function ClassRef:getNeedGuildLv()
	return self._needGuildLv
end

--获取需要的贡献等级
function ClassRef:getNeedDonateLv()
	return self._needDonateLv
end

--是否可以学 判断前置节点是否开启 （公会等级是否达到要求不在此处判断）
function ClassRef:canGet()
	return self._canGet
end

--是否已经激活 来自服务端
function ClassRef:isActive()
	return self._isActive
end

function ClassRef:getIconName()
	return GD:getImagePath( Res.guildIconPath, self._db.icon )
end

function ClassRef:setActive(isActive)
	self._isActive = isActive
end

--根据服务器发来的信息更新是否可以激活信息 以及前置节点是否开启信息
--期望中的数据结构为 sData = {id:lv,id:lv} id为公会技能ID lv为需要贡献等级 lv >=1 and lv <= 10

function ClassRef:updateDataByServer(sData)
	local donateLv = sData[self:getId()]
	if donateLv then
		self._isActive = true
		self._needDonateLv = donateLv
	else
		--判断前置节点是否激活
		if table.nums(self._proIds) > 0 then
			for _,v in ipairs(self._proIds) do
				if sData[v] then
					self._canGet = true
					break
				end
			end
		end
	end
end

return ClassRef



